AddOn
AddOns are generally self-contained User Interface (UI) modification components. However, some AddOns can be dependent on other AddOns to work, and some AddOns are actually collections of other AddOns. There is no size restriction on AddOns, some can grow to be quite massive. In plain English, an AddOn is just some files you can put in your game folder that can (theoretically) improve your interaction with the World of Warcraft game (i.e. make it easier to play, or give you more information about what's going on in the game). Often the name modification (or "mod" for short) is used interchangeably with AddOn. More specifically, mod is a third-party AddOn that alters or enhances some aspect of World of Warcraft's interface. Mods can perform a wide variety of tasks, including adding new buttons to the screen, altering the built-in player and party frames. In extreme cases, mods completely supplant the standard WoW interface, usually offering more advanced functionality. Some mods are standalone, able to run without any additional software. Others are built on libraries such as Sea or Ace. Still others, such as Cosmos, are compilations of many individually-developed mods. See Hosted AddOn Pages for a list of AddOns hosted on the wiki. For a good introduction and explanation, please see The Definitive Addon and Macro FAQ. How do I create an AddOn? First of all, you need to create a new directory in Interface\AddOns. The name of this directory is kind of important, as it is what other AddOns use to refer to your AddOn (in dependencies). Therefore, using version numbers in your AddOn directory name can be a bad idea; you will run the risk of having other AddOns "break" when you change the version. This will probably lead to people either not depending on your AddOn or, worse, that they'll keep using an old version. Major version numbers as part of AddOn directory names might work, though. Look at Getting started with writing addons to get a better idea of the structure of an addon. What is this .toc file? A functioning AddOn will need a file named .toc in "Interface\AddOns\YourAddOnDirectoryName\". This file needs to have two things - an interface keyword with a correct interface number, and the name(s) of one or more files to load. However, Blizzard asks that you include at least these three client recognized tag lines: ## Interface: 20400 ## Title: My Add On ## Notes: A short description of my AddOn * Tip: Make sure you do not have any extra spaces at the end of the line with the filename specified. If you do, the extra space is taken as part of the filename and will cause your AddOn to silently fail to load. * Tip: The .toc file is not reloaded when you reload the user interface; if you make chages to it, you will need to quit all the way to the desktop before they take effect. The interface number can be seen in the WoW login screen, at the lower left. The number in the .toc file must match the current build or the add on will not be loaded/active, unless the user has explicitly told WoW to load out-of-date Addons. If the .toc file declares an interface number prior to 2.0.0 (i.e. pre-The Burning Crusade), the AddOn can not be loaded, regardless of the load out of date AddOns setting. Special case : Bindings.xml If you include a Bindings.xml file, it does not have to be included in your .toc list of files to load - WoW loads this file automatically. This file is used to set key bindings specific to the AddOn. What other keywords are there in the .toc file? Please check out The TOC Format for a more detailed list. Troubleshooting an AddOn As of Patch 2.3, if you get a message "Interface action failed because of an AddOn", this means that an AddOn interfered with the Blizzard UI in some way. To diagnose this, enter the following into chat "/console taintLog 1" and restart the game and try to reproduce it. If you reproduce it, you can quit the game and search through the file Logs\taint.log for the word "blocked" and mail the log to the author of the AddOn listed there. Once you have done this you can turn off logging by entering the following into chat "/console taintLog 0" See Also * UI Beginners Guide has plenty of reference links * The TOC Format * Bindings.xml for creating key bindings * UI FAQ/AddOns * UI FAQ/AddOn Author Resources * Troubleshooting a mod Category:Interface Customization Category:AddOns Category:UI